home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / minix / up1510b.tgz / up1510b / src / kernel / stdma.c.D < prev    next >
Text File  |  1990-07-25  |  3KB  |  134 lines

  1. *** /tmp/,RCSt1022320    Wed Jul 25 13:55:58 1990
  2. --- stdma.c    Mon Jul 23 22:35:20 1990
  3. ***************
  4. *** 1,2 ****
  5. ! #ifdef ATARI_ST
  6.   /*
  7. --- 1,2 ----
  8. ! #if (CHIP == M68000)
  9.   /*
  10. ***************
  11. *** 20,21 ****
  12. --- 20,22 ----
  13.    *    dmawdat:    set dma_mode and write word to dma_data
  14. +  *    dmawcmd:    set dma_mode and write word to dma_data in one access
  15.    *    dmacomm:    like dmawdat, but first toggle WRBIT
  16. ***************
  17. *** 23,29 ****
  18.   
  19. ! #include "../h/const.h"
  20. ! #include "../h/type.h"
  21. ! #include "../h/com.h"
  22. ! #include "const.h"
  23. ! #include "type.h"
  24.   #include "proc.h"
  25. --- 24,27 ----
  26.   
  27. ! #include "kernel.h"
  28. ! #include <minix/com.h>
  29.   #include "proc.h"
  30. ***************
  31. *** 45,47 ****
  32.    *===========================================================================*/
  33. ! PUBLIC dmagrab(p, func)
  34.   int p;
  35. --- 43,45 ----
  36.    *===========================================================================*/
  37. ! PUBLIC void dmagrab(p, func)
  38.   int p;
  39. ***************
  40. *** 68,70 ****
  41.    *===========================================================================*/
  42. ! PUBLIC dmafree(p)
  43.   int    p;
  44. --- 66,68 ----
  45.    *===========================================================================*/
  46. ! PUBLIC void dmafree(p)
  47.   int    p;
  48. ***************
  49. *** 73,75 ****
  50.   
  51. !   xxxint = 0;            /* no more DMA interrupts */
  52.     ASSERT(qhead == p);
  53. --- 71,73 ----
  54.   
  55. !   xxxint = (int(*)())0;        /* no more DMA interrupts */
  56.     ASSERT(qhead == p);
  57. ***************
  58. *** 84,86 ****
  59.    *===========================================================================*/
  60. ! PUBLIC dmaint()
  61.   {
  62. --- 82,84 ----
  63.    *===========================================================================*/
  64. ! PUBLIC void dmaint()
  65.   {
  66. ***************
  67. *** 95,97 ****
  68.    *===========================================================================*/
  69. ! PUBLIC dmaaddr(ad)
  70.   phys_bytes ad;
  71. --- 93,95 ----
  72.    *===========================================================================*/
  73. ! PUBLIC void dmaaddr(ad)
  74.   phys_bytes ad;
  75. ***************
  76. *** 107,108 ****
  77. --- 105,108 ----
  78.   PUBLIC int dmardat(mode, delay)
  79. + int mode;
  80. + int delay;
  81.   {
  82. ***************
  83. *** 113,115 ****
  84.   
  85. ! PUBLIC dmawdat(mode, data, delay)
  86.   {
  87. --- 113,118 ----
  88.   
  89. ! PUBLIC void dmawdat(mode, data, delay)
  90. ! int mode;
  91. ! int data;
  92. ! int delay;
  93.   {
  94. ***************
  95. *** 120,125 ****
  96.   
  97. ! PUBLIC dmacomm(mode, data, delay)
  98.   {
  99. !   DMA->dma_mode = mode;
  100.     DMA->dma_mode = mode ^ WRBIT;
  101.     DMA->dma_mode = mode;
  102. --- 123,139 ----
  103.   
  104. ! PUBLIC void dmawcmd(dm)
  105. ! union { long l; struct { short data; short mode; } dm; } dm;
  106.   {
  107. !     register long l;
  108. !     l = dm.l;
  109. !     *((long*)&DMA->dma_data) = l;
  110. ! }
  111. ! PUBLIC void dmacomm(mode, data, delay)
  112. ! int mode;
  113. ! int data;
  114. ! int delay;
  115. ! {
  116.     DMA->dma_mode = mode ^ WRBIT;
  117. +   while (--delay >= 0);
  118.     DMA->dma_mode = mode;
  119. ***************
  120. *** 130,131 ****
  121. --- 144,147 ----
  122.   PUBLIC int dmastat(mode, delay)
  123. + int mode;
  124. + int delay;
  125.   {
  126. ***************
  127. *** 135,136 ****
  128.   }
  129. ! #endif ATARI_ST
  130. --- 151,152 ----
  131.   }
  132. ! #endif
  133.